package com.hzeport.bgs22emduty.service;

import com.hzeport.bgs22emduty.config.login.UserInfoDetailVO;
import com.hzeport.bgs22emduty.dto.duty.BasePersonInfoInitVO;
import com.hzeport.bgs22emduty.dto.duty.DutyPersonInitDetailVO;
import com.hzeport.bgs22emduty.entity.BaseDeptInfo;
import com.hzeport.bgs22emduty.entity.BaseDeptType;
import com.hzeport.bgs22emduty.entity.BasePersonInfo;
import com.hzeport.bgs22emduty.vo.ScreenDutyNoticeList.SmsSendPersonVO;
import com.hzeport.bgs22emduty.vo.dudyScheduleSet.DudyScheduleInitVO;
import com.hzeport.bgs22emduty.vo.dudyScheduleSet.DudyScheduleListVO;
import com.hzeport.bgs22emduty.vo.dudyScheduleSet.DudyScheduleListZGVO;
import com.hzeport.bgs22emduty.common.base.BaseResult;
import com.hzeport.bgs22emduty.common.base.BaseService;

import java.util.List;

/**
 * ${comments}
 *
 * @author code generator
 * @date 2022-12-02 11:21:59
 */
public interface BaseDeptInfoService extends BaseService<BaseDeptInfo> {

    Object customsList(UserInfoDetailVO userInfoDetailVO);

    Object deptSList(String customId);

    Object userInDept(String deptId);

    Object userInCustoms(String customsId) throws Exception;

    Object userWithPromission(String customsId, UserInfoDetailVO userInfoDetailVO,String userName);

    DudyScheduleListVO dutyScheduleInit(DudyScheduleInitVO dudyScheduleInitVO) throws Exception;

     void  getChild(BaseDeptInfo baseDeptInfo, List<BaseDeptInfo> childrens,  List<BaseDeptInfo> deptInfos);

    List<BasePersonInfo>  userInDeptWith(List<BaseDeptType> baseDeptTypes, BaseDeptInfo baseDeptInfo, List<BaseDeptInfo> deptInfoList, List<BasePersonInfo> basePersonInfoALLs);

    SmsSendPersonVO getPersonInfoTOSmsMessage(String type);

    List<BaseDeptInfo> selectdeptSList(String customId);

    Object customsListWithOutPermission();

    String getCustomIdByDeptId(String deptId);

    Object neoCustomList(UserInfoDetailVO userInfoDetailVO);

    Object subCustomsList(String customId);

    BaseResult deptTree(String customId);

    List<String> getParentIds(String dDept, String customId);

   void setPubDepList(String id,List<String> pubDep);

    Object customsListAll( UserInfoDetailVO userInfoDetailVO );

    List<DutyPersonInitDetailVO> dutyScheduleInitStep1(DudyScheduleInitVO dudyScheduleInitVO) throws Exception;

    List<BasePersonInfoInitVO> dutyScheduleInitPerson(String customId, String seType);

    List<BasePersonInfo> getBasePersonInfosInThisDept(List<BasePersonInfo> persons, BaseDeptInfo baseDeptInfo, List<BaseDeptInfo> allDepts);

    BasePersonInfoInitVO dutyScheduleInitPersonForDetail(String customId, String seType, String dutyType) throws Exception;

    List<BasePersonInfoInitVO> dutyScheduleInitPersonZS(String customId);

    List<DutyPersonInitDetailVO> dutyScheduleInitStep1ZS(DudyScheduleInitVO dudyScheduleInitVO) throws Exception;

    Object customsListZG();

    Object dutyScheduleInitZS(DudyScheduleInitVO dudyScheduleInitVO) throws Exception;

    BaseResult deptTreeZS(String customId);
}
